# 对HTML页面内容进行解析可以使用正则表达式的方式
# 在python中使用正则表达式的操作要用到re模块进行操作
import re
# findall表示从头进行查找，第一个参数表示要使用的正则表达式，第二个参数表示要进行解析的内容
result1=re.findall(r"\d+","联通：10010，移动：10086")
print(result1)
# finditer也表示从头进行查找匹配的内容，结果会返回一个迭代器
result2=re.finditer(r"\d+","联通：10010，移动：10086")
# 解析迭代器需要对迭代器进行遍历操作
for item in result2:
    # 此时的item中包含具体的匹配结果，若想直接获取匹配的内容,需要调用group方法进行执行
    print(item.group())
    pass
# search表示查找，只会将查找到的第一个结果返回
result3=re.search(r"\d+","联通：10010，移动：10086")
print(result3.group())
# match表示从头开始进行查找，相当于在表达式前面加上^符号，进行限制
result4=re.match(r"\d+","10011联通：10010，移动：10086")
print(result4.group())
# re.S表示.匹配换行符
obj=re.compile(r"\d+",re.S)
result5=obj.findall("10011联通：10010，移动：10086")
print(result5)
str="""
<div id='1' class='jay'>周杰伦</div>
<div id='2' class='jolin'>蔡依林</div>
<div id='3' class='jj'>林俊杰</div>
<div id='4' class='xzq'>薛之谦</div>
<div id='5' class='syz'>孙燕姿</div>
"""
# 对想要的部分内容进行提取时，我们可以将表达式匹配的结果进行分组
# 只用？P<分组名字>  后面可以直接通过group指定组名拿到具体想要的结果
obj2=re.compile(r"<div id='.*?' class='(?P<classname>.*?)'>(?P<starname>.*?)</div>",re.S)
result6=obj2.finditer(str)
for star in result6:
    print(star.group("starname"))
    print(star.group("classname"))